package sg.edu.nus.iss.billing.model.charge;

import sg.edu.nus.iss.billing.model.bill.Bill;
import sg.edu.nus.iss.billing.model.calculation.IChargeMethod;
import sg.edu.nus.iss.billing.model.subscription.ISubscribable;

/**
 * @author ZiFeng, Thurien, YinNi
 *
 */
public interface IChargable {

	String getDescription();

	Rate getRate();

	double charge(Bill chargingBill);
	
	void setChargeMethod(IChargeMethod chargeMethod);
	
	void setRate(Rate rate);
	
	void setDescription(String description);
	
	ISubscribable getChargingService();

}
